package com.hsgene.user.persistence;

import com.hsgene.common.util.web.session.UserInfo;
import com.hsgene.user.domain.ManagerAccount;
import com.hsgene.user.dto.user.GeneticTestingUserDto;
import com.hsgene.user.dto.user.manager.NormalManager;
import com.hsgene.user.dto.user.manager.SuperManager;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 管理员信息Repository
 *
 * @author wangbing
 * @version 1.0, 2018/7/11
 */
@Repository
public interface ManagerRepository {

    /**
     * 根据账号名查询账号信息
     *
     * @param userName 账号名
     * @return 账号信息
     */
    ManagerAccount findByUserName(@Param("userName") String userName);

    /**
     * 保存超级管理员信息
     *
     * @param account 超级管理员信息
     */
    void save(@Param("account") ManagerAccount account);

    /**
     * 批量更新用户密码
     *
     * @param userIds  用户列表
     * @param password 新密码
     */
    void updatePassword(@Param("userIds") List<String> userIds, @Param("password") String password);

    /**
     * 更新供应商超级管理员密码
     *
     * @param supplierId 供应商id
     * @param password   新密码
     */
    void updateSupplierPassword(@Param("supplierId") Long supplierId, @Param("password") String password);

    /**
     * 查询供应商所有超管
     *
     * @param supplierId 供应商id
     * @return 供应商超管
     */
    List<ManagerAccount> queryBySupplierId(@Param("supplierId") Long supplierId);

    /**
     * 根据id获取运营后台用户信息
     * @param id 用户id
     * @return
     */
    GeneticTestingUserDto geneticUserById(@Param("id") String id);
}
